package moxl.parser.assemblers.cdatasect;

public enum CharacterDataSectionAssemblerState
{
	CharacterDataSectionStartState(new CharacterDataSectionStartState()),
	CharacterDataSectionExpectingCDATAState(new CharacterDataSectionExpectingCDATAState()),
	CharacterDataSectionExpectingCharacterDataState(new CharacterDataSectionExpectingCharacterDataState()),
	CharacterDataSectionExpectingCloseSectionState(new CharacterDataSectionExpectingCloseSectionState()),
	CharacterDataSectionExpectingFirstOpenBracketState(new CharacterDataSectionExpectingFirstOpenBracketState()),
	CharacterDataSectionExpectingSecondOpenBracketState(new CharacterDataSectionExpectingSecondOpenBracketState()),
	CharacterDataSectionEndState(new CharacterDataSectionEndState());
	
	public static final CharacterDataSectionAssemblerState START = CharacterDataSectionStartState;
	public static final CharacterDataSectionAssemblerState END = CharacterDataSectionEndState;
	
	private final CharacterDataSectionStateDelegateBase delegate;

	CharacterDataSectionAssemblerState(CharacterDataSectionStateDelegateBase delegate)
	{
		this.delegate = delegate;
		delegate.associateState(this);
	}

	public CharacterDataSectionStateDelegateBase getDelegate()
	{
		return delegate;
	}

}
